package com.mdl.springmvc.ioStream;

/**
 * @Desc
 * @Author madengling
 * @Time 2020/12/24 17:15
 */
public class Bij {
/*
IO流概述
IO流是什么？
    IO：input和output
    输入输出流的意思？
        Java程序进行数据传输的管道！
        流就是管道的意思
    流：Stream
现实网络操作中有没有进行数据输入输出的操作？有
    例如：上网注册信息的时候，对图片信息的传输！---上传---输入到程序中 输入流
          从网上下载数据的时候，也是数据的传输！---下载---输出的操作
IO流就是数据进行传输的管道！
传输：输入流（把数据窗到程序中）
     输出流（把数据从程序中输出）

文件类（File）概述
    在计算机中所有的数据都是以文件的格式存储的！
    在Java中认为文件是一个对象！！！
    Java认为所有的东西都是对象！
官方解释：
    文件和目录路径名的抽象表示形式。（磁盘上的文件和文件夹都是File类的对象）
    文件就是磁盘上的文件在Java语言中的表示对象！
    Class类--对象->**.class在内存中的表现形式
    new 类(); jvm--class文件->Class对象
    File类的对象 就是磁盘上所有的文件 在Java语言中的对象的表现形式

File类的构造方法
    File(String pathname)：根据一个路径得到一个File对象
    File(String parent, String child)：根据一个目录和一个子文件夹/目录得到File对象
    FIle(File parent, String child)：根据一个父File对象和一个子文件/目录得到File对象

File类的成员方法：创建功能、删除功能、重命名功能、判断功能、获取功能
创建功能 public boolean createNewFile():创建文件 如果存在这样的文件，就不创建了
        public boolean mkdir():创建文件夹 如果存在这样的文件夹，就不创建了
        public boolean mkdirs():创建文件夹，如果父文件夹不存在，会帮你创建出来

删除功能 public boolean delete():可以用来删除文件和文件夹

重命名功能 public boolean renameTo(File dest):可以给文件或者文件夹改名字

判断功能
    public boolean isDirectory():判断是否是目录
    public boolean isFile():判断是否是文件
    public boolean exists():判断是否存在
    public boolean canRead():判断是否可读
    public boolean cnaWrite():判断是否可写
    public boolean isHidden():判断是否隐藏

获取功能
    public String getAbsolutePath():获取绝对路径
    public String getPath():获取相对路径
    public String getName():获取名称
    public long length():获取长度。字节数
    public long lastModified():获取最后一次的修改时间，毫秒值
    相对路径：
    绝对路径：文件在系统磁盘上的路径，从盘符开始，一直到文件或文件夹的名称就叫做绝对路径

    public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
    public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

IO流的分类
    流向：（不管是输入流还是输出流都是相对于你当前的程序而言的）
        输入流（读read）input
        输出流（写write）output
    传输的内容分：
        字节数据：图片、音频、视频
            字节输入流：InputStream
            字节输出流：OutputStream
        字符数据：abcd
            字符输入流：Reader
            字符输出流：Writer
    不管是字节还是字符流，底层流动的都是字节！

OutputStream的子类
    FileOutputStream(File file) 建一个向指定FIle对象表示的文件中写入数据的文件输出流。
    FIleOutputStream(String name) 创建一个向具有指定名称的文件中写入数据的输出文件流。
实现步骤:
    1.创建流对象（输出管道）
    2.把数据变成字节数据
    3.用管道传输数据到文件

 */
}
